In current behavior, crunch keep submitting new jobs as long as their dependencies have finished. This is not good on a scenario where a pipeline consists a large number (e.g. 10+) of independent DAGs. A improvement is to define a limited window of concurrent running jobs. Whenever such limit is reached, we stop submitting new jobs and wait until any running job finishes.