title: python pathos multiprocessing
body: <p>I am trying to use the pathos multiprocessing for a simple function for which I pass an array, it splits into parallel processes and then joins at the end.</p>
  
  <p>Here is the code I ported over from using the multiprocessing function, and then instead of importing multiprocessing, I imported pathos.</p>
  
  <pre><code>import sys
  import gender_guesser.detector as gender
  import time
  from pathos import multiprocessing as multiprocessing
  
  
  d = gender.Detector()
  
  def guess_gender (name):
      n = name.title() # make first letter upper case and the rest lower case 
      g = d.get_gender(n) # guess gender
      return g
  
  ls = ['john','joe','amamda','derick','peter','ashley','john','joe','amamda','derick','peter','ashley']
  
  t=time.time()
  
  results=[]
  
  
  def callBack(x):
      results.append(x)
  
  pool = multiprocessing.Pool(processes=multiprocessing.cpu_count()-1, maxtasksperchild=1)
  
  for n in ls:
      print (n)
      pool.apply_async(guess_gender,args=[n],callback=callBack)
  
  pool.close()
  pool.join()
  
  results = pd.concat(results)
  
  
  print(time.time()-t)
  </code></pre>
  
  <p>However, I get this error:</p>
  
  <pre><code>ValueError: No objects to concatenate
  </code></pre>
  
  <p>I am not sure how I extract the results of the output. The documentation on pathos is thin.</p>
  
  <p>Does anyone have any ideas or experience? </p>
  
  <p>FYI i am running python in jupyter notebooks.</p>