How to distribute UTXOs in hard fork while preserving privacy? Let us say I have a UTXO set S = {U1,U2, U3 ..., Uk} on a pre-fork bitcoin blockchain. 

How do I spend the previous UTXO S so that the new UTXO sets on both the chains are not linkable/tracable? Are there any common practices which people use for it? What are the trade-offs of different approaches?
At the point of the fork, both chains are identical, and thus all UTXOs are identical. All spends of those outputs are completely public as always, in the blockchain. So your question really comes down to whether you can hide which UTXOs you are spending in a given transaction, with or without the fork. The only way I know how to do that is via mixing. If you send your transactions in each chain to a mixing service, you'll end up with different outputs on each chain. The untraceability of the mixing is then dependent on things like how many other transactions are being mixed at the same time (on a new fork, there may be fewer people sending coins), or whether the value of the output you're spending is identifiable coming in and out of the mixing.