parallel is awesome for when you want to want to run a number of jobs unknown in advance, such as using it as an xargs replacement:
find . -type f -name | parallel --jobs 5 process_file
That will run "process_file foo" for ever file in a directory with 5 processes running in parallel.