Ya había encontrado otra forma, pero igual probé con os.getcwd() y funcionó con el detalle de que para que el script se copiara así mismo tuve que especificar al final de la ruta el nombre y extensión de mi archivo.
por ejemplo si mi archivo era Programa.py tenía que colocarlo así.
shutil.copyfile("C:\Users\Robin\Desktop\Cliente\Programa.py", "Otro directorio")El problema está en que si se llegaba al cambiar el nombre del archivo daba un error obvio, lo que era un inconveniente para lo que estaba intentando hacer
Mi solución fue utilizar sys.executable
import sys
shutil.copyfile(sys.executable, "Otro directorio")sys.executable también devuelve un String con la ruta del archivo en ejecución, pero se encarga de incluir al final de la ruta el nombre y extensión de nuestro programa así que ya podía cambiar el nombre de mi .exe y este podía copiarse sin importar que nombre le pusiera. Creo que solo funciona cuando ya hemos compilado nuestro .py en un .exe, porque de otra forma lo que te retorna es la ruta del interprete de python.
Dejo la info. por si le sirve a alguien más.