The semi colon represents a longer pause than comma. It is used to separate clauses which are loosely connected in thought. As, the given sentence consists of clauses that are not strongly connected., a semi colon must be used to link them.
A colon is used between sentences grammatically correct but closely related.
The usage of an em dash will also be incorrect, it is used to set apart parenthetical phrases and clauses in a sentence.
Thus, the correct answer is Option B.