title: Python Multiprocessing/Multithreading -> 'Future' object is not iterable
body: <p>I am getting this error, when using the &quot;submit&quot; functionality of ProcessPoolExecutor.</p>
  <p>Exception has occurred: TypeError
  'Future' object is not iterable
  File &quot;C:......\test3.py&quot;, line 28, in 
  for f in as_completed(res):</p>
  <pre><code>import time
  import json
  import os
  import requests
  from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor
  from concurrent.futures import as_completed
  
  BAN_API_URL = 'https://api-adresse.data.gouv.fr/search/'
  
  def get_french_addresses(request):
      print(f&quot;Started task with pid: {os.getpid()} fetch addresses: {request['search_field']}&quot;)
      query_params = {'q': request['search_field'], 'type': 'housenumber', 'autocomplete': 1}
      response = requests.get(BAN_API_URL, params=query_params)
      print(f&quot;Finished task with pid: {os.getpid()} to address: {request['search_field']}&quot;)
      return json.loads(response.text)
  
  
  request_data = [
      {'search_field': '17 rue saint maur'},
      {'search_field': '35 boulevard voltaire'},
      {'search_field': '32 rue rivoli'},
      {'search_field': 'Route de la Croqueterie'},
  ]
  if __name__ == '__main__':
      start_time = time.time()
      # Execute asynchronously with multi threads
      with ProcessPoolExecutor() as executor:
          res = executor.submit(get_french_addresses, request_data)
          print(res)
          for f in as_completed(res):
              print(f.result())
  
      end_time = time.time()
      print(f'Total time to run multithreads: {end_time - start_time:2f}s')
  </code></pre>