But it will create for them the issue of managing a long list of addresses and keys.
Did you know about HD wallets? You can have one key and derive every other key from that.
force miners to have ONLY ONE UNIQUE address
If you limit the number of addresses that miners can have, then they will be forced to form pools. Imagine you have one million miners and only 100 of them can do Proof of Work. Then the obvious solution is forming a pool. Finally you would have 100 big mining pools where each pool has its own address. You can even force all miners to have ONLY ONE UNIQUE address in the whole network, then that address could be worthless, everyone could mine a block with private key equal to one and include a transaction sending funds where they want.
democratizing bitcoin mining is what I say needs to be done but how?
For example by splitting rewards in P2P way. Now you have to solo mine a block matching the network difficulty. To get rid of pools, you need a way to mine N times easier block and receive N times lower coinbase reward in pure P2P way.
An asic miner should count as one cpu just like my intel core 2 duo.
No, it should be proportional to the work you did. For example, now you have a block with hash 000000000000000000091ae845e53e648e536eddc25be691baab2cf59a0c9123 and you have 0x170c69ea difficulty, so the target is 0000000000000000000c69ea0000000000000000000000000000000000000000. In this block, some miner got 6.30623404 BTC, so 630623404 (0x25968cac) satoshis. If you multiply the target by the number of satoshis, you would get 000000000001d29bb35f21380000000000000000000000000000000000000000. That means to mine one satoshi, you should produce a block with hash below that target. If mining in the Lightning Network would be possible, then going to millisatoshis or even lower fractions should be possible to get reasonably low target for each CPU miner. The only problem with this approach is joining shares. You can collect N headers, but it will be always too low to cover every miner, so there is a need to join shares somehow, also to make it backward-compatible.
for example, only let each miner perform one hash. whichever miner comes closest to the target is the winner. and they get to mine the block
You cannot do that. Bigger miners can pretend to be N smaller miners to get more chances. In your proposal, the better connected miners always win, that means of course specialized mining pools with their own servers, not some small solo miner running a single CPU.