Exactly what I do. Never recieve any spam on my main.
Nothing can prevent the spam from actually coming in. You can create policies/filters that automatically delete all emails that don't come from people in your address book but that means you have to pre-whitelist addresses just to get email.'
Your only real option is to change your email address and either use a service that provides alias's for specific purposes(outlook.com is a good one) or create separate accounts to provide the segregation
Here is an example:
XXXXXX@XXX.com <- Personal email address, never used to register any services/sites ensures a clean inbox.
XXXXXX.BXXX@XXX.com <- This is tied to my banking accounts only
XXXXXX.PXXX@XXX.com <- Used for buying anything
XXXXXX.JXXX@XXX.com <- A dump email address
XXXXXX.NXXX@XXX.com <- newsgroups