title: python multiprocessing pool not work when we run many tasks
body: <p>Example: I have a CPU with 2 threads so I have 2 workers with this code.</p>
  
  <pre><code>tasks = ['1.txt', '2.txt', '3.txt', '4.txt', '5.txt']
  
  pool = multiprocessing.Pool()
  pool.map(myfunc, tasks, chunksize=1)
  pool.close()
  pool.join()
  </code></pre>
  
  <p>If I run this program it will process '1.txt' and '2.txt' first and then when one of them done the job it will start next file. That mean at a time it process only 2 files, right?</p>
  
  <p>But I found the problem when I run with many many files. (maybe more than 100+ files). Program will not wait until one of 2 workers done the job but it will assign job to worker 3, 4, 5, 6, 7, 8, 9, and so on.</p>
  
  <p>How can I fix this problem?</p>
  
  <p>Thank you everyone in advance.</p>
  
  <p>P.S. I use Python 3.6.</p>