Prevent double authentication while using `openqaoa-azure`
### Prerequisites
Before raising this issue, I have already checked that I am:

- [x] running the latest version
- [x] made sure that this issue has not already been filed

### Describe the bug
Running a QAOA problem using the OpenQAOA workflow as described in [this](https://github.com/entropicalabs/openqaoa/blob/main/examples/12_testing_azure.ipynb) notebook will require web authentication twice before executing the run. For reference, see the attached screenshot.

This happens because DeviceAzure, which is defined in `src/openqaoa-azure/openqaoa_azure/backends/devices.py`, has a method called `check_connection`, that is called twice, once from within the workflow and the other time from within the backend object. 


### To Reproduce
Steps to reproduce the behavior:
1. Create the Azure device object
2. Create a `qubo` for a problem of choice
3. Initialize the QAOA workflow as `q = QAOA()`
4. Call the compile method and pass the QUBO via `q.compile(qubo)`

### Expected behavior 
Upon executing the above steps, the web authenticator should only prompt once for device authentication

### Screenshots
![image](https://github.com/entropicalabs/openqaoa/assets/35625965/98a1e761-cbb5-46c1-9769-bd5920399f0f)

diff --git a/pytest.ini b/pytest.ini
index 04e8f57..8b2a53f 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -1,8 +1,8 @@
 [pytest]
 markers =
     qpu: marks tests that require a QPU connection (deselect with '-m "not qpu"')
-    api: marks tests that require a coonection to a QC cloud (deselect with '-m "not api"')
-    qvm: marks tests that require an attive Rigetti QVM and QILC compiler (deselect with '-m "not qvm"')
+    api: marks tests that require a connection to a QC cloud (deselect with '-m "not api"')
+    qvm: marks tests that require an active Rigetti QVM and QILC compiler (deselect with '-m "not qvm"')
     docker_aws: marks tests that require to build aws docker (deselect with '-m "not docker_aws"')
     braket_api: marks tests that require valid AWS credentials (no QPU) (deselect with '-m "not braket_api"')
     notebook: marks tests that run on jupyter noteboks (deselect with '-m "not notebook"')
diff --git a/src/openqaoa-core/openqaoa/algorithms/qaoa/qaoa_workflow.py b/src/openqaoa-core/openqaoa/algorithms/qaoa/qaoa_workflow.py
index 28b410c..c02ea01 100644
--- a/src/openqaoa-core/openqaoa/algorithms/qaoa/qaoa_workflow.py
+++ b/src/openqaoa-core/openqaoa/algorithms/qaoa/qaoa_workflow.py
@@ -79,7 +79,7 @@ class QAOA(Workflow):
 
     >>> q = QAOA()
     >>> q.compile(QUBO)
-    >>> q.optimise()
+    >>> q.optimize()
 
     Where `QUBO` is a an instance of `openqaoa.problems.problem.QUBO`
 
diff --git a/src/openqaoa-core/openqaoa/algorithms/rqaoa/rqaoa_workflow.py b/src/openqaoa-core/openqaoa/algorithms/rqaoa/rqaoa_workflow.py
index 08f5918..507e9ca 100644
--- a/src/openqaoa-core/openqaoa/algorithms/rqaoa/rqaoa_workflow.py
+++ b/src/openqaoa-core/openqaoa/algorithms/rqaoa/rqaoa_workflow.py
@@ -74,7 +74,7 @@ class RQAOA(Workflow):
 
     >>> r = RQAOA()
     >>> r.compile(QUBO)
-    >>> r.optimise()
+    >>> r.optimize()
 
     Where `QUBO` is a an instance of `openqaoa.problems.problem.QUBO`
 
diff --git a/src/openqaoa-core/openqaoa/backends/basebackend.py b/src/openqaoa-core/openqaoa/backends/basebackend.py
index 49f1747..b5b53d9 100644
--- a/src/openqaoa-core/openqaoa/backends/basebackend.py
+++ b/src/openqaoa-core/openqaoa/backends/basebackend.py
@@ -560,7 +560,8 @@ class QAOABaseBackendCloud:
 
     def __init__(self, device: DeviceBase):
         self.device = device
-        self.device.check_connection()
+        if getattr(self.device, "provider_connected", None) is None and getattr(self.device, "qpu_connected", None) is None:
+            self.device.check_connection()
 
 
 class QAOABaseBackendParametric:
['src/openqaoa-core/openqaoa/algorithms/rqaoa/rqaoa_workflow.py', 'src/openqaoa-core/openqaoa/backends/basebackend.py', 'pytest.ini', 'src/openqaoa-core/openqaoa/algorithms/qaoa/qaoa_workflow.py']