What you mention is called hybrid parallelism.
A cluster is composed of several nodes. A node is a group of sockets that share the same physical memory and a socket is a group of cores that we refer as a processor. The nodes are stored in racks and communicate with each other thanks to a very high-speed connection through a switch.
To simplify, you perform hybrid parallelism when you affect a number of OpenMP threads equal to the number of cores per socket, and a number of MPI processes equal to the number of nodes you want to use on the cluster. For instance, if I have a cluster with 4 nodes and 12 cores by sockets/processors, I launch my program to run with 4 MPI processes (1 by node) and 12 OpenMP threads by MPI process (one by core on each socket). In your example, you have 2 nodes (2 computers, 2 different entities with different memory), and 4 cores by processor. So run with 2 MPI processes, each one dealing with 4 OpenMP threads on each computer. NameRakes gives a good word : MPI is a layer above OpenMP.
An alternative is to only use MPI with 8 processes since MPI works both for shared and distributed memory architecture, you cannot do that with OpenMP which is restricted to shared-memory computers. However, in that case, 8 MPI communications are required against 2 for a hybrid parallelism, which is less efficient.
You seem to have a pretty decent speed-up with OpenMP. Hybrid parallelism makes sense for clusters with dozens of sockets and highly scalable numerical codes with thousand of degrees of freedom. As said by NameRakes, not sure that the time investment will be rewarding since MPI and OpenMP are very different in their concept.
Also be aware that your code will run according to the slower processor so if your two computers have different processors, it may deteriorate your speed-up so you want to make sure to distribute the load correctly. You can surely gain time, but not by a factor 2, it depends on the architecture and the scalability of your code.