What would happen if two miners were mining two blocks with two different set of transactions? If two miners picked from the mempool two different sets of transactions, that were not dependent on each other. 

Then could both miners, mine both blocks and not create a fork?

So miner 1 finishes the block and miner two sees that the block had nothing to do with his block, so he continues mining and adds that block onto miner 1s block after about a second?

I am assuming that forks only happen when both blocks mined have transactions that exist in both blocks
No, each block must reference it's predecessor block in the header, and the blockchain has only a single block at each height. The second miner must therefore modify the block template that they are mining with to build on top of the just discovered block. They need to update the hash of the predecessor block and the blockchain height in the Coinbase transaction. Otherwise the block they would be finding would be competing with the just published for inclusion instead of writing forth the blockchain.

The rest of the block template could stay the same, if none of the transactions got included in the blockchain already.

However, your question sounds to me like you're thinking that searching for a block has progress. Mining is a progress-less process, each attempt may or may not succeed independently. Thus, it would be a more profitable strategy for each miner to try including the juiciest transactions (by highest fee rate) and to switch to a new block template whenever a block is published with the new juiciest transactions.