Here are several equally safe ways of combining the mining efforts:
In all cases, set up one or more private key-public key-account address combination on a safe, air-gapped machine (with proper precautions to prevent air-gap-bridging by malicious entities). This is the key to security in any case. Record the account address(es).
Now, you can set up an Ethereum node instance on each machine and have them mine to an address you generated. This will minimize latency, assuming the nodes are fast enough to handle Ethereum transactions efficiently, especially for a geographically distributed network of machines.
Alternately, if you have all the machines in the same location, you may prefer to set up your own pool. In this situation, you can concentrate some resources on the quality of the node (e.g., high performance disks, large amounts of RAM, fast CPU) to minimize processing latency and decrease your chances of getting an uncle. You can also set up redundancy/failover for your network and the node; this allows you to upgrade your Ethereum clients without any downtime whenever there's a fork or software update.
Alternately, if this is too much for you, you can select an existing pool. The latency between you and the pool has negligible effect on your efficiency. The inefficiencies come from other places. The first is pool fees. Then there's the fact that several pools don't pay for uncle blocks or transaction fees collected. Then you hope the operator isn't skimming off the top and that the node is maintained properly (mining on the right chain, not experiencing downtime, and properly secured).
Whether you mine to the same address on each node or not is your decision. This should have no effect on your safety.