title: concurrent.futures issue: why only 1 worker?
body: <p>I am experimenting the use of <code>concurrent.futures.ProcessPoolExecutor</code> to parallelize a serial task. The serial task involves finding the number of occurrence of a given number from a number range. My code is shown below. <br>During its execution, I noticed from Task Manager / System Monitor / top that only one cpu/thread is constantly in operation despite giving the max_workers of <code>processPoolExecutor</code> a value more than 1. Why is this the case? How can I parallelize my code using <code>concurrent.futures?</code> My code was executed with python 3.5.</p>
  
  <pre><code>import concurrent.futures as cf
  from time import time
  
  def _findmatch(nmax, number):    
      print('def _findmatch(nmax, number):')
      start = time()
      match=[]
      nlist = range(nmax)
      for n in nlist:
          if number in str(n):match.append(n)
      end = time() - start
      print("found {} in {}sec".format(len(match),end))
      return match
  
  def _concurrent(nmax, number, workers):
      with cf.ProcessPoolExecutor(max_workers=workers) as executor:
          start = time()
          future = executor.submit(_findmatch, nmax, number)
          futures = future.result()
          found = len(futures)
          end = time() - start
          print('with statement of def _concurrent(nmax, number):')
          print("found {} in {}sec".format(found, end))
      return futures
  
  if __name__ == '__main__':
      match=[]
      nmax = int(1E8)
      number = str(5) # Find this number
      workers = 3
      start = time()
      a = _concurrent(nmax, number, workers)
      end = time() - start
      print('main')
      print("found {} in {}sec".format(len(a),end))
  </code></pre>