Distribute interdependent tasks to 0 or more threads