title: Multiprocessing through file tree not outputting expected output
body: <p>Multiprocessing through a directory tree is not working as expected. I'm trying to add all <code>iso</code> files to a single <code>set()</code> and output just that set. I'm aware that I'm telling python to return <code>None</code> but I don't know how else I can do this without returning <code>None</code>. How can I output a singular set from multiprocessing?</p>
  
  <pre><code>import itertools
  import multiprocessing
  
  
  def worker(filename):
      data_set = set()
      if ".iso" in filename:
          data_set.add(filename)
      return data_set if len(data_set) != 0 else None
  
  
  def search_for_iso(dirname=None, verbose=False, default_path="/"):
      iso_found = set()
      if dirname is None:
          pool = multiprocessing.Pool(processes=48)
          walker = os.walk(default_path)
          file_data_gen = itertools.chain.from_iterable((
              os.path.join(root, f) for f in files) for root, sub, files in walker)
          results = pool.map(worker, file_data_gen)
          return results
  </code></pre>
  
  <p>As of now it will output the following: <code>set(['/test.iso', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, .....]) # whole lot of None's</code></p>
  
  <p>Expected output: <code>set(['/test.iso'])</code></p>