One way would be to create the shell input for all the jobs:
for file in *.pdf
do
printf 'pdftoppm -tiff -f 1 -l 2 "%q" ~/tiff/directory/"%q"/"%q"' \
"$file" "$file" "$file"
done
and then pipe that to `parallel -j N` where N is the number of jobs you want to run simultaneously:
for file in *.pdf
do
printf 'pdftoppm -tiff -f 1 -l 2 "%q" ~/tiff/directory/"%q"/"%q"' \
"$file" "$file" "$file"
done |
parallel -j 8