title: Can't pickle Function
body: <p>So I'm trying to speed up my computation time by doing a little bit multiprocessing</p>
  
  <p>I'm trying to use the pool workers.</p>
  
  <p>At the top of my code I have </p>
  
  <pre><code>import Singal as s
  import multiprocessing as mp
  def wrapper(Channel):
      Noise_Frequincies = []
      for i in range(1,125):
          Noise_Frequincies.append(60.0*float(i))
      Noise_Frequincies.append(180.0)
      filter1 = s.Noise_Reduction(Sample_Rate,Noise_Frequincies,Channel)
      return filter1
  </code></pre>
  
  <p>Then when the time comes I use</p>
  
  <pre><code>Both_Channels = [Chan1, Chan2]
  results = mp.Pool(2).map(wrapper,Both_Channels)
  filter1 = results[0]
  filter2 = results[1]
  </code></pre>
  
  <p>I get the following error </p>
  
  <pre><code>Exception in thread Thread-2:
  Traceback (most recent call last):
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 808, in __bootstrap_inner
  self.run()
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 761, in run
  self.__target(*self.__args, **self.__kwargs)
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py", line 342, in _handle_tasks
  put(task)
  PicklingError: Can't pickle &lt;type 'function'&gt;: attribute lookup __builtin__.function failed
  </code></pre>
  
  <p>Chan1 and Chan2 are arrays of my signal, and I'm trying to filter out some noise out of each. 
  I'm new to multiprocessing so I apologize if this is a dumb error</p>