But the "--master local[1]" setting they're using for Spark will run it on a single thread.
And, in the article they state "The algorithm took around 500 seconds to train on the NETFLIX dataset on a SINGLE processor, which is good for data as large as 1 billion ratings."
-emphasis mine